package top.lgd.pojo.entity.study;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import top.lgd.base.LgdEntity;

import javax.validation.constraints.Size;
import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * 学习内容表
 *
 * @author YYJ
 * @version 1.0
 * @since 2023/12/16 10:46
 */
@Getter
@Setter
@TableName("study_content")
public class Content extends LgdEntity {

    private static final long serialVersionUID = 6914813605469399960L;

    /**
     * 目录ID
     * Index
     */
    private Long catalogId;

    /**
     * 根目录ID
     */
    private Long rootCatalogId;

    /**
     * 目录名称
     */
    @TableField(exist = false)
    private String catalogName;


    /**
     * 类型 E-电子书 B-书箱 V-视频
     */
    @Size(max = 1)
    private String type;

    /**
     * 名称
     */
    @Size(max = 16)
    private String name;

    /**
     * 作者
     */
    @Size(max = 16)
    private String author;

    /**
     * 译者
     */
    @Size(max = 16)
    private String translator;

    /**
     * 出版社
     */
    @Size(max = 32)
    private String publisher;

    /**
     * 来源
     */
    @Size(max = 16)
    private String resource;

    /**
     * 排序
     */
    private Integer sortNum;

    /**
     * 完成量
     */
    private Integer doneIndex;

    /**
     * 目标量
     */
    private Integer targetIndex;

    /**
     * 当前进度
     */
    @TableField(exist = false)
    private BigDecimal currentProgress;

    /**
     * 开始日期
     */
    @JsonFormat(timezone = "GMT+8")
    private LocalDate startDate;

    /**
     * 结束日期
     */
    @JsonFormat(timezone = "GMT+8")
    private LocalDate endDate;

    /**
     * 学习天数
     */
    @TableField(exist = false)
    private Integer studyDays;

    /**
     * 状态 0-学习中 1-待学习 2-已学习
     */
    @Size(max = 2)
    private String status;
}